package Logica;

import Componentes.Componente;
import Juegos.Partida;
import Juegos.Posicion;

/**
 * ProyectoX TDP 2011
 * @author  Ma Gimena Ramos- LU:82716
 * @autor Brenda Dilschneider- LU: 92774
 *
 */

public class Gravedad {
	Partida p;
	
	/**
	 * constructor
	 * @param part partida
	 */
	public Gravedad (Partida part ){
	p=part;
	
	}
	
	/**
	 * se encarga de que el componente pasado por parametro caiga 
	 * hasta encontrar un componente donde apoyarse o morir
	 * @param comp
	 */
	public void Caida(Componente comp){
		
		Posicion posActual = comp.obtenerPosicion();
		Componente c = p.getComponente(posActual.getX(), posActual.getY()+1);
		
		Posicion posLlegada = new Posicion (posActual.getX(), posActual.getY()+1 );
		
		while (c== null && posLlegada.getY()<14 || (c!=null && c.esTransitable())) {
			
			posLlegada.setPosicion(posLlegada.getX(), posLlegada.getY() +1);
				
			c=p.getComponente(posActual.getX(), posActual.getY()+2);
					
			comp.getGrafico().setLocation(comp.getGrafico().getLocation().x, comp.getGrafico().getLocation().y +16);
			comp.setPosicion(comp.obtenerPosicion().getX(), comp.obtenerPosicion().getY()+1);
			
			}
		
		
		int diferencia = 14 - posActual.getY();
		if (c==null && p.getComponente(posActual.getX(),posActual.getY()+diferencia)== null){
			while (c== null && posLlegada.getY()<18) {
				comp.getGrafico().setLocation(comp.getGrafico().getLocation().x, comp.getGrafico().getLocation().y +32);
				posLlegada.setPosicion(posLlegada.getX(), posLlegada.getY()+2);
				
			}
			comp.destruirHilo();
		}	} 
	
}

